|
This is a memo for FeynArts.
Install
I used feyninstall. I forgot the details.
Preparation
<< FeynArts`
Last caracter is next to "1" on my keybord.
(I use MacBookPro.)
Diagram (Topology)
CreateTopologies[l, i -> f];
Paint[%];
l: # of loop
i: # of initial state
f: # of final state
This include not 1PI diagram. If we want only 1PI diagrams,
we should type as follows:
CreateTopologies[l, i -> f, ExcludeTopologies -> Internal];
Paint[%];
We can name them for convenience;
test=CreateTopologies[l, i -> f, ExcludeTopologies -> Internal];
Paint[test];
TIPs:
I prefer "Paint[test];" than "Paint[test]" because latter show some
information which is usually not needed.
Diagram (practical)
(* generate diagrams *)
CreateTopologies[1
,1 -> 2
,ExcludeTopologies -> Internal
];
(* Insert physical fields, , V[2]= Z boson, F[4, {3}] = bottom, "-" means anti-particle. *)
InsertFields[ t12, V[2] -> {F[4, {3}], -F[4, {3}]} ];
(* Draw the diagrmas *)
Paint[%
,ColumnsXRows->4
,PaintLevel->{Classes}
];
photon self-energy in QED at one-loop
CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal];
InsertFields[ %, V[1] -> V[1], Model->"QED" ];
Paint[%, PaintLevel->{Classes}];
We specify the model in 2nd line.
If we use "Paint[%];" instead of "Paint[%, PaintLevel->{Classes}];",
then we will find unwanted diagrams as well as what we want.
This unwanted diagrams are generic diagram and represent where
are fermions, gauge boson without specify the particle names.
Another way to eliminate the generic diagrams is to use
"InsertionLevel -> {Classes}" in InsertFields command:
CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal];
InsertFields[ %, V[1] -> V[1], Model->"QED", InsertionLevel -> {Classes}];
Paint[%];
From diagrams to amplitude
example: photon self energy in QED.
CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal];
InsertFields[ %, V[1] -> V[1], Model->"QED", InsertionLevel -> {Classes}];
amp = CreateFeynAmp[%];
amp >> testQEDcalc.amp
Clear[dam]
This testQEDcalc.amp can be read in FormCalc.
FormCalc
<< FormCalc`
CalcFeynAmp[<< testQEDcalc.amp]
FormCalc
(2019.4.22)
<< FormCalc` でエラーが出た。ファイルが読めないらしい。無視して動かそうとしても動かなかったので、FormCalc-9.8/Formcalc.m を以下のように改造。
(*
$FormCalcDir = DirectoryName[ File /.
FileInformation[System`Private`FindFile[$Input]] ]
*)
$FormCalcDir = DirectoryName["/Users/abetomo/work/programs/FormCalc-9.8/README"]
$FormCalcDir に FormCalc の Directory を教えれば良い。READMEを付けているのは、そのファイルのあるディレクトリをDirectoryName[]は読み取るため。FormCalc の DirectoryにあるファイルならREADMEでなくても良いはず。とりあえずこれで動いたのでよしとする。
|